求一个正则表达式,关于<BR>的

来源:百度知道 编辑:UC知道 时间:2024/06/21 19:11:28
有一个网页文件,里面有许多的<BR>标签,有的地方是连续三个<BR>, 有些地方是连续四个<BR>,或更多,但这些<BR>之间都是连续的,请问如何设计一个正则表达式将这些三个、四个或更多个的连续<BR>替换成两个<BR>

举例来说:
原始网页如下:
aaaaaa<BR><BR><BR>bbbbb<BR><BR><BR><BR><BR>cccc<BR><BR><BR><BR>dddd<BR><BR><BR><BR><BR>

现在想用这个正则表达式替换为:
aaaaaa<BR><BR>bbbbb<BR><BR>cccc<BR><BR>dddd<BR><BR>

请高手指教!
我是用ASP+VBScript来做的,经楼下高手指点,将其修改如下,成功通过!

<BR>(<BR>){1,30}

但随之新的问题也出来了,如果这个<BR>标签不是全是大写的,如有<BR><Br><bR><br>又该如何呢?

正则是/<br>(<br>)+/i,替换为<br><br>既可。

不知道你用什么语言开发,不同语言的正则表达式在语法上可能有细微变化,特别是微软喜欢自由发挥,下面的PHP代码测试通过:

<?php
$s='aaaaaa<BR><BR><BR>bbbbb<BR><BR><BR><BR><BR>cccc<BR><BR><BR><BR>dddd<BR><BR><BR><BR><BR>';
$s=preg_replace('/<br>(<br>)+/i','<br><br>',$s);
echo $s;
?>

补充:
你没有看见我.../i吗,这个i就是不区分大小写,你看我的程序就是写的小写,一样替换大写。

而且你那个{1,30}也完全可以用+,否则当有32个<BR>的时候你代码就无法替换了。

(?:<br/?>){2,}